<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>38.9. Introduction</title>
<link rel="stylesheet" href="dbstyle.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="Programmer's Reference Guide">
<link rel="up" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="prev" href="zend.service.simpy.html" title="38.8. Zend_Service_Simpy">
<link rel="next" href="zend.service.strikeiron.html" title="38.10. Zend_Service_StrikeIron">
<link rel="chapter" href="introduction.html" title="Chapter 1. Introduction to Zend Framework">
<link rel="chapter" href="zend.acl.html" title="Chapter 2. Zend_Acl">
<link rel="chapter" href="zend.auth.html" title="Chapter 3. Zend_Auth">
<link rel="chapter" href="zend.cache.html" title="Chapter 4. Zend_Cache">
<link rel="chapter" href="zend.config.html" title="Chapter 5. Zend_Config">
<link rel="chapter" href="zend.console.getopt.html" title="Chapter 6. Zend_Console_Getopt">
<link rel="chapter" href="zend.controller.html" title="Chapter 7. Zend_Controller">
<link rel="chapter" href="zend.currency.html" title="Chapter 8. Zend_Currency">
<link rel="chapter" href="zend.date.html" title="Chapter 9. Zend_Date">
<link rel="chapter" href="zend.db.html" title="Chapter 10. Zend_Db">
<link rel="chapter" href="zend.debug.html" title="Chapter 11. Zend_Debug">
<link rel="chapter" href="zend.dojo.html" title="Chapter 12. Zend_Dojo">
<link rel="chapter" href="zend.dom.html" title="Chapter 13. Zend_Dom">
<link rel="chapter" href="zend.exception.html" title="Chapter 14. Zend_Exception">
<link rel="chapter" href="zend.feed.html" title="Chapter 15. Zend_Feed">
<link rel="chapter" href="zend.filter.html" title="Chapter 16. Zend_Filter">
<link rel="chapter" href="zend.form.html" title="Chapter 17. Zend_Form">
<link rel="chapter" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="chapter" href="zend.http.html" title="Chapter 19. Zend_Http">
<link rel="chapter" href="zend.infocard.html" title="Chapter 20. Zend_InfoCard">
<link rel="chapter" href="zend.json.html" title="Chapter 21. Zend_Json">
<link rel="chapter" href="zend.layout.html" title="Chapter 22. Zend_Layout">
<link rel="chapter" href="zend.ldap.html" title="Chapter 23. Zend_Ldap">
<link rel="chapter" href="zend.loader.html" title="Chapter 24. Zend_Loader">
<link rel="chapter" href="zend.locale.html" title="Chapter 25. Zend_Locale">
<link rel="chapter" href="zend.log.html" title="Chapter 26. Zend_Log">
<link rel="chapter" href="zend.mail.html" title="Chapter 27. Zend_Mail">
<link rel="chapter" href="zend.measure.html" title="Chapter 28. Zend_Measure">
<link rel="chapter" href="zend.memory.html" title="Chapter 29. Zend_Memory">
<link rel="chapter" href="zend.mime.html" title="Chapter 30. Zend_Mime">
<link rel="chapter" href="zend.openid.html" title="Chapter 31. Zend_OpenId">
<link rel="chapter" href="zend.paginator.html" title="Chapter 32. Zend_Paginator">
<link rel="chapter" href="zend.pdf.html" title="Chapter 33. Zend_Pdf">
<link rel="chapter" href="zend.registry.html" title="Chapter 34. Zend_Registry">
<link rel="chapter" href="zend.rest.html" title="Chapter 35. Zend_Rest">
<link rel="chapter" href="zend.search.lucene.html" title="Chapter 36. Zend_Search_Lucene">
<link rel="chapter" href="zend.server.html" title="Chapter 37. Zend_Server">
<link rel="chapter" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="chapter" href="zend.session.html" title="Chapter 39. Zend_Session">
<link rel="chapter" href="zend.soap.html" title="Chapter 40. Zend_Soap">
<link rel="chapter" href="zend.test.html" title="Chapter 41. Zend_Test">
<link rel="chapter" href="zend.text.html" title="Chapter 42. Zend_Text">
<link rel="chapter" href="zend.timesync.html" title="Chapter 43. Zend_TimeSync">
<link rel="chapter" href="zend.translate.html" title="Chapter 44. Zend_Translate">
<link rel="chapter" href="zend.uri.html" title="Chapter 45. Zend_Uri">
<link rel="chapter" href="zend.validate.html" title="Chapter 46. Zend_Validate">
<link rel="chapter" href="zend.version.html" title="Chapter 47. Zend_Version">
<link rel="chapter" href="zend.view.html" title="Chapter 48. Zend_View">
<link rel="chapter" href="zend.xmlrpc.html" title="Chapter 49. Zend_XmlRpc">
<link rel="appendix" href="requirements.html" title="Appendix A. Zend Framework Requirements">
<link rel="appendix" href="coding-standard.html" title="Appendix B. Zend Framework Coding Standard for PHP">
<link rel="appendix" href="copyrights.html" title="Appendix C. Copyright Information">
<link rel="index" href="the.index.html" title="Index">
<link rel="subsection" href="zend.service.slideshare.html#zend.service.slideshare.basicusage" title="38.9.1. Getting Started with Zend_Service_SlideShare">
<link rel="subsection" href="zend.service.slideshare.html#zend.service.slideshare.slideshowobj" title="38.9.2. The SlideShow object">
<link rel="subsection" href="zend.service.slideshare.html#zend.service.slideshare.getslideshow" title="38.9.3. Retrieving a single slide show">
<link rel="subsection" href="zend.service.slideshare.html#zend.service.slideshare.getslideshowlist" title="38.9.4. Retrieving Groups of Slide Shows">
<link rel="subsection" href="zend.service.slideshare.html#zend.service.slideshare.caching" title="38.9.5. Zend_Service_SlideShare Caching policies">
<link rel="subsection" href="zend.service.slideshare.html#zend.service.slideshare.httpclient" title="38.9.6. Changing the behavior of the HTTP Client">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader"><table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">38.9. Introduction</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="zend.service.simpy.html">Prev</a> </td>
<th width="60%" align="center">Chapter 38. Zend_Service</th>
<td width="20%" align="right"> <a accesskey="n" href="zend.service.strikeiron.html">Next</a>
</td>
</tr>
</table></div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="zend.service.slideshare"></a>38.9. Introduction</h2></div></div></div>
<p>
        The <code class="code">Zend_Service_SlideShare</code> component is used to interact with the
        <a href="http://www.slideshare.net/" target="_top">slideshare.net</a> web services for hosting
        slide shows online. With this component, you can embed slide shows which are hosted on this
        web site within a web site and even upload new slide shows to your account.
    </p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.slideshare.basicusage"></a>38.9.1. Getting Started with <code class="code">Zend_Service_SlideShare</code>
</h3></div></div></div>
<p>
            In order to use the Zend_Service_SlideShare component you must first create an account
            on the slideshare.net servers (more information can be found
            <a href="http://www.slideshare.net/developers/" target="_top">here</a>) in order to receive an
            API key, username, password and shared secret value -- all of which are needed in order
            to use the <code class="code">Zend_Service_SlideShare</code> component.
        </p>
<p>
            Once you have setup an account, you can begin using the
            <code class="code">Zend_Service_SlideShare</code> component by creating a new instance of the
            <code class="code">Zend_Service_SlideShare</code> object and providing these values as shown below:
        </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Service/SlideShare.php';

// Create a new instance of the component
$ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD');
?&gt;
        </pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.slideshare.slideshowobj"></a>38.9.2. The SlideShow object</h3></div></div></div>
<p>
            All slide shows in the <code class="code">Zend_Service_SlideShare</code> component are represented
            using the <code class="code">Zend_Service_SlideShare_SlideShow</code> object (both when retrieving
            and uploading new	slide shows). For your reference a pesudo-code version of this class
            is provided below.
        </p>
<pre class="programlisting">&lt;?php
class Zend_Service_SlideShare_SlideShow {

    /**
     * Retrieves the location of the slide show
     */
    public function getLocation() {
        return $this-&gt;_location;
    }

    /**
     * Gets the transcript for this slide show
     */
    public function getTranscript() {
        return $this-&gt;_transcript;
    }

    /**
     * Adds a tag to the slide show
     */
    public function addTag($tag) {
        $this-&gt;_tags[] = (string)$tag;
        return $this;
    }

    /**
     * Sets the tags for the slide show
     */
    public function setTags(Array $tags) {
        $this-&gt;_tags = $tags;
        return $this;
    }

    /**
     * Gets all of the tags associated with the slide show
     */
    public function getTags() {
        return $this-&gt;_tags;
    }

    /**
     * Sets the filename on the local filesystem of the slide show
     * (for uploading a new slide show)
     */
    public function setFilename($file) {
        $this-&gt;_slideShowFilename = (string)$file;
        return $this;
    }

    /**
     * Retrieves the filename on the local filesystem of the slide show
     * which will be uploaded
     */
    public function getFilename() {
        return $this-&gt;_slideShowFilename;
    }

    /**
     * Gets the ID for the slide show
     */
    public function getId() {
        return $this-&gt;_slideShowId;
    }

    /**
     * Retrieves the HTML embed code for the slide show
     */
    public function getEmbedCode() {
        return $this-&gt;_embedCode;
    }

    /**
     * Retrieves the Thumbnail URi for the slide show
     */
    public function getThumbnailUrl() {
        return $this-&gt;_thumbnailUrl;
    }

    /**
     * Sets the title for the Slide show
     */
    public function setTitle($title) {
        $this-&gt;_title = (string)$title;
        return $this;
    }

    /**
     * Retrieves the Slide show title
     */
    public function getTitle() {
        return $this-&gt;_title;
    }

    /**
     * Sets the description for the Slide show
     */
    public function setDescription($desc) {
        $this-&gt;_description = (string)$desc;
        return $this;
    }

    /**
     * Gets the description of the slide show
     */
    public function getDescription() {
        return $this-&gt;_description;
    }

    /**
     * Gets the numeric status of the slide show on the server
     */
    public function getStatus() {
        return $this-&gt;_status;
    }

    /**
     * Gets the textual description of the status of the slide show on the server
     */
    public function getStatusDescription() {
        return $this-&gt;_statusDescription;
    }

    /**
     * Gets the permanent link of the slide show
     */
    public function getPermaLink() {
        return $this-&gt;_permalink;
    }

    /**
     * Gets the number of views the slide show has received
     */
    public function getNumViews() {
        return $this-&gt;_numViews;
    }
}
        </pre>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
                The above pseudo-class only shows those methods which should be used by end-user
                developers. Other available methods are internal to the component.
            </p></td></tr>
</table></div>
<p>
            When using the <code class="code">Zend_Service_SlideShare</code> component, this data class will be
            used frequently to browse or add new slide shows to or from the web service.
        </p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.slideshare.getslideshow"></a>38.9.3. Retrieving a single slide show</h3></div></div></div>
<p>
            The simplest usage of the <code class="code">Zend_Service_SlideShare</code> component is the
            retrieval of a single slide show by slide show ID provided by the slideshare.net
            application and is done by calling the <code class="code">getSlideShow()</code> method of a
            <code class="code">Zend_Service_SlideShare</code> object and using the resulting
            <code class="code">Zend_Service_SlideShare_SlideShow</code> object as shown.
        </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Service/SlideShare.php';

// Create a new instance of the component
$ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD');

$slideshow = $ss-&gt;getSlideShow(123456);

print "Slide Show Title: {$slideshow-&gt;getTitle()}&lt;br/&gt;\n";
print "Number of views: {$slideshow-&gt;getNumViews()}&lt;br/&gt;\n";
?&gt;
        </pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.slideshare.getslideshowlist"></a>38.9.4. Retrieving Groups of Slide Shows</h3></div></div></div>
<p>
            If you do not know the specific ID of a slide show you are interested in retrieving,
            you can retrieving groups of slide shows by using one of three methods:
        </p>
<div class="itemizedlist"><ul type="opencircle">
<li style="list-style-type: circle">
<p>
                    <span class="strong"><strong>Slide shows from a specific account</strong></span>
                </p>
<p>
                    You can retrieve slide shows from a specific account by using the
                    <code class="code">getSlideShowsByUsername()</code> method and providing the username from
                    which the slide shows should be retrieved
                </p>
</li>
<li style="list-style-type: circle">
<p>
                    <span class="strong"><strong>Slide shows which contain specific tags</strong></span>
                </p>
<p>
                    You can retrieve slide shows which contain one or more specific tags by using
                    the <code class="code">getSlideShowsByTag</code> method and providing one or more tags which
                    the slide show must have assigned to it in order to be retrieved
                </p>
</li>
<li style="list-style-type: circle">
<p>
                    <span class="strong"><strong>Slide shows by group</strong></span>
                </p>
<p>
                    You can retrieve slide shows which are a member of a specific group using the
                    <code class="code">getSlideShowsByGroup</code> method and providng the name of the group
                    which the slide show must belong to in order to be retrieved
                </p>
</li>
</ul></div>
<p>
            Each of the above methods of retrieving multiple slide shows a similar approach is
            used. An example of using each method is shown below:
        </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Service/SlideShare.php';

// Create a new instance of the component
$ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD');

$starting_offset = 0;
$limit = 10;

// Retrieve the first 10 of each type
$ss_user = $ss-&gt;getSlideShowsByUser('username', $starting_offset, $limit);
$ss_tags = $ss-&gt;getSlideShowsByTag('zend', $starting_offset, $limit);
$ss_group = $ss-&gt;getSlideShowsByGroup('mygroup', $starting_offset, $limit);

// Iterate over the slide shows
foreach($ss_user as $slideshow) {
   print "Slide Show Title: {$slideshow-&gt;getTitle}&lt;br/&gt;\n";
}
?&gt;
        </pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.slideshare.caching"></a>38.9.5. <code class="code">Zend_Service_SlideShare</code> Caching policies</h3></div></div></div>
<p>
            By default, <code class="code">Zend_Service_SlideShare</code> will cache any request against the web
            service automatically to the filesystem (default path <code class="code">/tmp</code>) for 12 hours.
            If you desire to change this behavior, you must provide your own
            <a href="zend.cache.html" title="Chapter 4. Zend_Cache">Chapter 4, <i>Zend_Cache</i></a> object using the <code class="code">setCacheObject</code> method as
            shown:
        </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Cache.php';
require_once 'Zend/Service/SlideShare.php';

$frontendOptions = array(
                        'lifetime' =&gt; 7200,
                        'automatic_serialization' =&gt; true);
$backendOptions  = array(
                        'cache_dir' =&gt; '/webtmp/');

$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);

$ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD');
$ss-&gt;setCacheObject($cache);

$ss_user = $ss-&gt;getSlideShowsByUser('username', $starting_offset, $limit);
?&gt;
        </pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.service.slideshare.httpclient"></a>38.9.6. Changing the behavior of the HTTP Client</h3></div></div></div>
<p>
            If for whatever reason you would like to change the behavior of the HTTP client when
            making the web service request, you can do so by creating your own instance of the
            <code class="code">Zend_Http_Client</code> object (see <a href="zend.http.html" title="Chapter 19. Zend_Http">Chapter 19, <i>Zend_Http</i></a>). This is useful
            for instance when it is desirable to set the timeout for the connection to something
            other then default as shown:
        </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Http/Client.php';

$client = new Zend_Http_Client();
$client-&gt;setConfig(array('timeout' =&gt; 5));

$ss = new Zend_Service_SlideShare('APIKEY', 'SHAREDSECRET', 'USERNAME', 'PASSWORD');
$ss-&gt;setHttpClient($client);
$ss_user = $ss-&gt;getSlideShowsByUser('username', $starting_offset, $limit);
?&gt;
        </pre>
</div>
</div>
<div class="navfooter"><table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="zend.service.simpy.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="zend.service.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="zend.service.strikeiron.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">38.8. Zend_Service_Simpy </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> 38.10. Zend_Service_StrikeIron</td>
</tr>
</table></div>
<div class="revinfo"></div>
</body>
</html>
